home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / GMS / GMSDev / Source / E / Screens / Reposition.e < prev    next >
Encoding:
Text File  |  1998-03-16  |  1.6 KB  |  56 lines

  1. /* Name:      Reposition
  2. ** Author:    Paul Manias
  3. ** Copyright: DreamWorld Productions (c) 1996-1998.  Freely distributable.
  4. **
  5. ** This example has a mobile 320x256 screen, which is attached to the
  6. ** mouse.  To exit the example, press LMB. 
  7. */
  8.  
  9. MODULE 'gms/dpkernel','gms/dpkernel/dpkernel','gms/graphics/pictures'
  10. MODULE 'gms/files/files','gms/screens','gms/system/register','gms/system/modules'
  11. MODULE 'gms/input/joydata','gms/graphics/screens','gms/graphics/blitter'
  12.  
  13. PROC main()
  14.    DEF screen    :PTR TO screen,
  15.        joy       :PTR TO joydata,
  16.        pic       :PTR TO picture,
  17.        scrmodule :PTR TO module,
  18.        picfile   :filename
  19.  
  20.    picfile := [ ID_FILENAME, 'GMS:demos/data/PIC.Green']:filename
  21.  
  22.    IF dpkbase := OpenLibrary('GMS:libs/dpkernel.library',0)
  23.     IF (scrmodule := Init([TAGS_MODULE,NIL,
  24.        MODA_NUMBER,    MOD_SCREENS,
  25.        MODA_TABLETYPE, JMP_AMIGAE,
  26.        TAGEND], NIL))
  27.  
  28.       scrbase := scrmodule.modbase
  29.  
  30.       IF (pic := Load(picfile,ID_PICTURE))
  31.          screen := Get(ID_SCREEN)
  32.          CopyStructure(pic,screen)
  33.          screen.attrib  := SCR_CENTRE
  34.  
  35.          IF (screen := Init(screen,NIL))
  36.             Copy(pic.bitmap,screen.bitmap)
  37.             IF (joy := Init(Get(ID_JOYDATA),NIL))
  38.                Show(screen)
  39.                REPEAT
  40.                  Query(joy)
  41.                  WaitAVBL()
  42.                  SetScrOffsets(screen, screen.xoffset+joy.xchange, screen.yoffset+joy.ychange)
  43.                UNTIL !(joy.buttons AND JD_LMB)
  44.             Free(joy)
  45.             ENDIF
  46.          Free(screen)
  47.          ENDIF
  48.       Free(pic)
  49.       ENDIF
  50.     Free(scrmodule)
  51.     ENDIF
  52.    CloseDPK()
  53.    ENDIF
  54. ENDPROC
  55.  
  56.